//
//  UIImage+Extension.swift
//  FamiliesSchoolConnection
//
//  Created by 花花蔡 on 2016/12/27.
//  Copyright © 2016年 com.HuaHuaCai. All rights reserved.
//

import UIKit

extension UIImage {
    
    //颜色装换为图片
    class func imageWithColor(color:UIColor) -> UIImage? {
        
        //获得绘图上下文
        //绘制出来的图片是矢量图，系统会根据拉伸程度自动填充颜色，尺寸随便度可以
        UIGraphicsBeginImageContext(CGSize(width: 44, height: 64))
        //设置绘制颜色
        color.setFill()
        //绘制图片
        UIRectFill(CGRect(x: 0, y: 0, width: 44, height: 64))
        //将上下文装换为图片
        let newImg = UIGraphicsGetImageFromCurrentImageContext()
        //必须关闭上下文
        UIGraphicsEndImageContext()
        
        return newImg
    }
    
    
    //压缩图片的方法
    func setImage(size:CGSize,bgColor:UIColor,borderColor:UIColor? = .black) -> UIImage? {
        //设置绘制范围
        let rect = CGRect(origin: CGPoint(), size: size)
        //创建绘图上下文
        
        //1.尺寸 2. 是否不透明 false（透明） 3.绘图的分辨率，0表示根据当前屏幕分辨率绘制
        UIGraphicsBeginImageContextWithOptions(size, true, 0)
        //设置绘制背景色
        bgColor.setFill()
        UIRectFill(rect)
        //这只圆环路径
        let path = UIBezierPath(ovalIn:rect)
        //设置路径为裁剪路径，在这句代码后面的所有的绘制都只会在这个路径中绘制
        path.addClip()
        //绘制图片
        draw(in: rect)
        
        //设置边框
        if borderColor != nil {
            borderColor?.setStroke()
            path.lineWidth = 2
            path.stroke()
        }
        
        //从上下文中获得图片
        let newImage = UIGraphicsGetImageFromCurrentImageContext()
        //关闭上下文
        UIGraphicsEndImageContext()
        
        return newImage
    }

    
}
